A packet based telecommunications network is a geographically distributed collection of nodes interconnected by communication links and segments for providing communication sessions (e.g., phone calls, multimedia and other data) between end nodes. The end nodes typically consist of user devices, such as personal computers, cell phones, personal digital assistants (PDAs), and the like. Many types of packet based telecommunications networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect nodes over dedicated private communication links located in the same general physical location, such as a building or campus. WANs, on the other hand, typically connect large numbers of geographically dispersed nodes over long-distance communication links, such as common carrier telephone lines. Examples of WANs are 3GPP and 3GPP2 compliant wireless networks, and Long Term Evolution (LTE) wireless networks. The nodes of packet based networks typically signal each other over the network by exchanging discrete frames or packets according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). The Internet itself connects various networks throughout the world, providing global communication between nodes in the various networks.
A packet based telecommunications network may comprise a series of intermediate nodes (e.g., routers) that are configured to carry communications through the network to the end nodes. Routers are often configured to “route” data, such as packets, between various nodes in the network. Routing is typically performed at layer-3 (L3), which is the network layer of the Open Systems Interconnection (OSI) network model. Routers often maintain forwarding databases (FDBs), which are typically configured to hold routing information including L3 addresses and interface information that the router uses to determine where data (e.g., data packets) are to be forwarded in order to reach their destination. For example, a router may have a routing database containing one or more entries wherein each entry contains an L3 destination address of a destination node and interface information about an interface on the router through which the destination node may be reached. A data packet containing a destination address that matches a destination address of an entry in the routing table is forwarded by the router to the interface specified by the matching entry for transfer to the destination node.
The end nodes of a communication session are known and defined as part of the communication session. Although the physical (geographical) locations of the end nodes may initially be unknown, some IP based communication networks enable an end node to learn its geographic location from a server. In a wireless network, the server may employ triangulation or other methods to determine the end node's geographic location. The end node may then learn its location by issuing a request to the server to which the server responds with the geographic location. See, for example, European Patent Application No. 1 477 302 entitled “Integrating Geographical Contextual Information Into Mobile Enterprise Application”, or IETF RFC 3825, by J. Polk et al., entitled “Dynamic Host Configuration Protocol Option for Coordinate-based Location Configuration Information”. Numerous efforts to obtain the geographical location of end nodes is known for purposes of 9-1-1 and other emergency services. See, for example, draft IETF document entitled “Emergency Call Services for SIP-based Internet Telephony” by Henning Schulzrine, dated Mar. 25, 2001.
The packets for communications sessions are often routed through various networks and intermediate network elements. In packet based networks, each session (and even each message) may be transferred via a different route. For example, a call made from Australia to Finland may go through UK and Sweden while a similar call made a minute later may take a totally different route. In an ad-hoc network, such as a mesh network, this is further complicated since a user device may operate as either an end node or an intermediate node.
The physical (geographical) route of intermediate network elements through which the packets travel is not known in advance for several reasons. A router may execute one or more routing protocols that enable the router to route packets and exchange routing information with other routers in the network. The routers often use this information to configure (e.g., compute) their FDBs. The routing protocols may include distance-vector protocols, such as the Routing Information Protocol (RIP), or link-state protocols, such as the Intermediate-System-to-Intermediate-System (IS-IS) protocol and the Open Shortest Path First (OSPF) protocol.
Since the routing is not known in advance, the intermediate network elements are not known and may be signaling elements (such as a Call State Control Function (CSCF) in a 3GPP network), media gateways, or even user devices in an ad-hoc network. It would be useful to obtain information about the intermediate network elements. Furthermore, it will be useful to know the geographical location of the intermediate nodes routing a communication session. The intermediate nodes may be in different countries, even when both the end nodes are in the same country.
The reasons for this may be various. For example, an organization may want to route traffic via a foreign country for tax purposes (e.g. to avoid tax on local calls), or an operator's network infrastructure (e.g. operator's network elements) may be located in different countries. Currently, it is difficult to know reliably what network elements have been involved in a communication session and the countries in which those network elements are located.
This creates tax problems and law enforcement related problems. Different taxes may apply to communications based on the countries involved. Currently, it is very difficult to get and document this information reliably. Certain law enforcement actions, such as wiretapping, vary by jurisdiction. For example, different laws may apply to foreign communications (or communications that involve a foreign country). It is also difficult to know reliably if foreign countries were involved in the call (e.g. only the operator may be known). There are various prior attempts related to these concerns, but none of them are sufficient. For country boundary information, the operator identity provided by an network operator was typically enough to make the assumption that the home country of that operator was involved (similarly, visiting network information may have been available). For tax purposes, it was usually enough to trust the word of the operator.
For diagnostic purposes, there may be a natural disaster and/or human conflict strife affecting a region, city or neighborhood. It would be useful to know what effect this is having on communications, particularly geographic routing on a per session and/or per packet basis. Real-time diagnostic maps in which network elements are represented by their IP address or other identity information (and function name, such as CSCF) are not sufficient. Ad hoc networks could also benefit from diagnostic monitoring of routing as it is an easy way to find out which devices are willing and able to route communications traffic.
A network operator may maintain a separate database, which includes the physical location of network elements, but it is not previously known how to utilize that information in real-time or near real-time on a per session or a per packet basis. But a network element can be physically moved, and the database entry corresponding to that network element may not be updated properly when the location changes.
It also might be useful and entertaining for end users to know the geographical route for packet traffic of their communication sessions. Currently, when an end user is making a call, sending a message, or initiating another kind of communications session, the user device typically is not very informative and just displays “calling . . . ” or “in progress” while the communications session is set up. While U.S. Pat. No. 6,278,454 does discuss a user interface (UI) that provides call progress information, it does not provide geographic routing or location information.
In light of the shortcomings described above, it would be advantageous to develop methods and network elements which enable tagging of the location of intermediate nodes for a communications session in a packet based network. It would be preferable to have methods and apparatus that permit a device, such as an end user device, to utilize the tagged location information for various purposes, such as displaying the routing and progress of the communication session.